package com.lhkj.ct.meta.modules.gauge.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.lhkj.ct.base.model.dto.PageQuery;
import com.lhkj.ct.base.mybatis.extension.service.IPageService;
import com.lhkj.ct.base.mybatis.extension.service.IService;
import com.lhkj.ct.meta.modules.gauge.model.entity.TblQnr;
import com.lhkj.ct.meta.modules.gauge.model.vo.QnrPageVo;

import javax.validation.constraints.NotBlank;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 调查问卷 服务类
 * </p>
 *
 * @author jobob
 * @since 2023-10-26
 */
public interface QnrConfigService extends IService<TblQnr>, IPageService<TblQnr> {

    /**
     * 调查问卷 - 分页查询
     */
    IPage<QnrPageVo> selectQnrPage(TblQnr qnr, PageQuery pageQuery);

    TblQnr getForm(String id);

    /**
     * 根据问卷分类分组
     */
    List<Map<String, List<Map<String, Object>>>> groupByCategory(TblQnr qnr);

    /**
     * 批量修改状态
     * @param status    状态
     * @param ids       问卷id
     */
    boolean updateStatus(Integer status, List<String>ids);

    /**
     * 逻辑删除,并添加回收站记录
     */
    int logicDelete(@NotBlank(message = "问卷id不能为空") String id);

    /**
     * 复制问卷
     */
    void copy(@NotBlank(message = "问卷id不能为空") String id);
}
